/* @authors: Amannda Misael, André Gouvêa, Bruna Brandão, Juliana Silva, Raphael Rodrigues  */
/********************************************************************************************/
/************************** PROJETO J.A.B.A.R. - Tarefa 1 ***********************************/
/**************************** Assembly Version: 1.0.1105 ************************************/
package jabar;

import Exception.TrianguloException;
import Funcoes.Triangulo;

import java.util.Scanner;

public class Main {

    private static double validaMedida(String medidaLado) {
        if (medidaLado.isEmpty()) {
            System.err.print("\nMedida inválida: Campo não pode ser vazio!\n");
            return 0;
        }

        char[] temp = medidaLado.toCharArray();

        for (int i = 0; i < temp.length; i++) {
            if (!Character.isDigit(temp[i]) && temp[i] != '.') {
                System.err.print("\nMedida inválida: Valor deve ser numérico!\n");
                return 0;
            }
        }

        double lado = Double.parseDouble(medidaLado);

        if (lado > 0) {
            return lado;
        } else {
            System.err.println("\nMedida inválida: Valor deve ser maior que 0.\n");
            return 0;
        }
    }

    public static void main(String[] args) {
        try {
            Scanner sc = new Scanner(System.in);
            double ladoA = 0.0, ladoB = 0.0, ladoC = 0.0;
            System.out.println("----- Tarefa PM 1: Triangulo ----\n");

            do {
                System.out.print("Entre com a medida do primeiro lado do triangulo: ");
                try {
                    ladoA = validaMedida(sc.nextLine());
                } catch (Exception ex) {
                    System.err.println(ex.getMessage());
                }
            } while (ladoA == 0);

            do {
                System.out.print("Entre com a medida do segundo lado do triangulo: ");
                try {
                    ladoB = validaMedida(sc.nextLine());
                } catch (Exception ex) {
                    System.err.println(ex.getMessage());
                }
            } while (ladoB == 0);

            do {
                System.out.print("Entre com a medida do terceiro lado do triangulo: ");
                try {
                    ladoC = validaMedida(sc.nextLine());
                } catch (Exception ex) {
                    System.err.println(ex.getMessage());
                }
            } while (ladoC == 0);

            Triangulo triangulo = new Triangulo(ladoA, ladoB, ladoC);
            System.out.println("\n\nO triangulo é do tipo " + triangulo.getTipoTriangulo() + "\n\n");

        } catch (TrianguloException ex) {
            System.err.println(ex.getMessage());
        }
    }
}
